﻿using System;

namespace UnityEngine.PostProcessing
{
	// Token: 0x02000101 RID: 257
	[Serializable]
	public class GrainModel : PostProcessingModel
	{
		// Token: 0x170000A3 RID: 163
		// (get) Token: 0x06000633 RID: 1587 RVA: 0x00025600 File Offset: 0x00023800
		// (set) Token: 0x06000634 RID: 1588 RVA: 0x00025608 File Offset: 0x00023808
		public GrainModel.Settings settings
		{
			get
			{
				return this.m_Settings;
			}
			set
			{
				this.m_Settings = value;
			}
		}

		// Token: 0x06000635 RID: 1589 RVA: 0x00025614 File Offset: 0x00023814
		public override void Reset()
		{
			this.m_Settings = GrainModel.Settings.defaultSettings;
		}

		// Token: 0x040005E8 RID: 1512
		[SerializeField]
		private GrainModel.Settings m_Settings = GrainModel.Settings.defaultSettings;

		// Token: 0x02000102 RID: 258
		[Serializable]
		public struct Settings
		{
			// Token: 0x170000A4 RID: 164
			// (get) Token: 0x06000636 RID: 1590 RVA: 0x00025624 File Offset: 0x00023824
			public static GrainModel.Settings defaultSettings
			{
				get
				{
					return new GrainModel.Settings
					{
						colored = true,
						intensity = 0.5f,
						size = 1f,
						luminanceContribution = 0.8f
					};
				}
			}

			// Token: 0x040005E9 RID: 1513
			[Tooltip("Enable the use of colored grain.")]
			public bool colored;

			// Token: 0x040005EA RID: 1514
			[Tooltip("Grain strength. Higher means more visible grain.")]
			[Range(0f, 1f)]
			public float intensity;

			// Token: 0x040005EB RID: 1515
			[Range(0.3f, 3f)]
			[Tooltip("Grain particle size in \"Filmic\" mode.")]
			public float size;

			// Token: 0x040005EC RID: 1516
			[Tooltip("Controls the noisiness response curve based on scene luminance. Lower values mean less noise in dark areas.")]
			[Range(0f, 1f)]
			public float luminanceContribution;
		}
	}
}
